package com.cn.wanxi.util;

public class MyHelp {
    /**
     * 2020-12-09
     * 1.对象
     * 2.类
     * 3.Java的数据类型
     * 4.Java的命名方式
     * 5.修饰符--
     * 6.属性
     * 7.方法
     * 8.servlet 分层
     * 9.servlet页面转发--数据转发到前端--前端进行接收
     * 10.注意：页面访问需要先访问后台，通过后台转发，地址：页面访问地址
     * 11：@WebServlet("/home") servlet 3.0之后
     */
    /**
     * 2020-12-11
     * equals和==和===的区别？
     *  ===一般存在于js
     *  equals一般存在与java
     *  == 它判断值和地址是否相等
     *  final
     *  修饰属性表示常量
     *  修饰方法表示不能被重写
     *  修饰类表示不能被继承
     *  finally
     *  一般出现在try catch里面
     *  表示始终执行：一定始终执行吗？请问什么情况下不执行
     *
     */
    /**
     * 基本类型：占几个字节，取值范围，默认值
     * 包装类：
     * int Integer  装箱
     * Integer int  拆箱
     *
     * 引用类型：四种
     * 强引用，
     *      强引用可以直接访问目标对象。
     *      在任何时候都不会被系统回收，
     *      强引用可能导致内存泄漏
     * 弱引用 ，
     *      可无的缓存数据
     *      当系统内存不足时，这些缓存数据会被回收，不会导致内存溢出
     *      当内存资源充足时，这些缓存数据又可以存在相当长的时间，从而起到加速系统的作用。
     * 软引用，
     *      在系统内存紧张的情况下，软引用被回收
     * 虚引用
     *      垃圾回收器准备回收一个对象时，如果发现它还有虚引用，就会在垃圾回收后，销毁这个对象
     *      程序可以通过判断引用队列中是否已经加入了虚引用，来了解被引用的对象是否将要被垃圾回收
     * 这几个引用说明了至少2个问题：
     *      1.垃圾回收
     *      2.生命周期（存活的时间）
     * 异常：
     * 运行时异常，
     *  控制着异常 NullPointException
     *  下标越界异常  ArrayOutOfBoundException
     *  IndexOutOfBoundsException
     *  IllegalArgumentException  方法参数异常
     *  找不到类 ClassNotFoundException  反射
     * Class clazz= Class.forName("com.cn.wanxi.Model.UserModel")
     * 编译时异常，
     * ArithmeticException
     * FileNotFoundException
     * ArrayStoreException
     *
     * 运算符;
     * 一元运算符     赋值运算符
     * 二元运算符     逻辑运算符
     * 三元运算符     5>6？7：8
     *
     *
     * 泛型：接口
     */
    /**
     * 2020-12-17
     * file类
     * 第三阶段步骤
     * 只需要在服务逻辑层修改代码
     * io流的代码应该单独写在io流里面去
     * 1.根据给定路径创建文件夹--需要判断当前文件夹路径是否存在
     * 2.根据给定文件名称创建文件--需要判断当前路径是否存在
     * 3.写入数据--OutputStream 是抽象类，需要其他类实现FileOutputStream
     * 4.因为写入文件流必须是int，后再byte[]，所以需要对dao层数据进行转换
     * 5.如果直接写入数据，无法保证每一个数据可读性
     * 6.需要添加一个分隔符
     *
     */
    /**
     * 2020-12-18
     * 修改service层：目的，得到封装后的数据，不需要知道怎么封装
     * 修改io流层
     * 1.创建文件，必须返回创建的文件，因为写和读取，都需要当前的文件，不能每次创建新的
     * 2.写：拿到刚刚创建的文件
     *      注意：写的时候通过字节流来写
     * 3.读：拿到刚刚创建的文件
     *      注意：如果直接用字节流写，会出现乱码，因为一个汉字在utf-8的情况下是3个字节
     *      所以：需要用到字符流：
     *      while   read的时候如果已经读取完后，则返回-1
     *      需要定一个int data = 0;(data = inputStream.read()) != -1
     *      StringBuffer，StringBuilder ,String 之间的区别？
     *      String s="abc";
     *      String ss=new String("abc");
     *      String sss=new String("abc").intern();
     *      System.out.println(s==ss); false
     *      System.out.println(s==sss); true
     * 4.封装：split()返回数组。
     *      遍历数组的两种方式
     *      for  foreach
     *
     * 对于list集合的读取
     * 1.创建记事本  io
     * 2.写：数组：需要将数组转换为字符串，如果是集合，也需要转换为字符串
     * 3.读：因为和公司信息读一样，所以直接提取到公共部分，io
     * 4.封装：因为写的时候有括号和空格，所以需要替换，如果用StringUtils这个就更简单，需要导入jar包
     *
     */
}
